A video compression/transmission system that is known in the art is shown in FIG. 1. A camera 11 is provided that generates video image data for a video capture component 13. The video capture component 13 “captures” the video image data from the camera one frame at a time in a known manner and at a predetermined rate (e.g., approximately 30 frames per second). The video capture component 13 transfers the video frame data to a video compressor 15 which may compress the video image data for the frame according to a bit-rate control algorithm. Such a bit-rate control algorithm typically includes a compression algorithm such as any of a variety of block transform based video transform algorithms such as H.261 (International Telecommunication Union—Telecommunications Standardization Sector (ITU-T), March, 1993), H.263 (ITU-T, Dec. 5, 1995), JPEG (“Joint Photographic Expert Group”)(International Organization for Standardization/International Electrotechnical Commission (“ISO/IEC”) 10918-1), MPEG-I, and MPEG-II (“Motion Picture Expert Group”)(ISO/IEC 11172-2 and 138182). The compressed video frame data is then sent to a transmitter 19 via a video controller 17, and the data is stored temporarily in a transmit buffer 20 under the control of a buffer regulator. The transmitter 19 then pulls data from the transmit buffer sequentially and adds the appropriate protocol information and transmits the data to a transmission medium (e.g., POTS (Plain Old Telephone Service) in a modem-to-modem connection).
In some systems, such as some ProShare® systems and Intel Smart Video Recorder® systems (Intel Corporation, Santa Clara, Calif.), the bit rate control algorithm of compressor 15 operates separately from the transfer of data from the transmit buffer 20 to the transmission medium 21 by the buffer regulator. Because of this separation, the operation of the bit rate control algorithm can only estimate the state of the transmit buffer 20 (i.e., how much data is contained in the transmit buffer 20). Also, the buffer regulator of the transmitter 19 typically requires that the video compressor 15 produce the same amount of compressed data for each frame. This separation of the components leads to inaccuracies in that the transmit buffer 20 is incorrectly filled (i.e., not filled with enough data which reduces the frame rate over the transmission medium or filled with too much data causing delay or latency).
In some systems, the transmission rate can vary widely (e.g., over a high speed connection to a network such as the Internet). For example, in one video-phone application, the bandwidth of the transmission medium may be changed by the user's “on-the-fly” during the communication. With such varying transmission rates, there exists additional problems in processor utilization to adequately compress frames of video data. This is due to the fact that the transmission medium may at times be able to provide more resources than can be adequately or efficiently used by the processor system.
In view of the above, there is a need for a system and method that improves processor utilization in handling transmission of video frame data.